package com.thwj.project.app.api.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.thwj.common.annotation.Excel;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.util.List;

@Data
@ApiModel("活动出参ActivityVo")
public class ActivityVo {


    /** 主键 */
    @ApiModelProperty("主键")
    private Long id;

    @ApiModelProperty("1：常规活动 2：派对")
    private Integer type;

    @ApiModelProperty("用户id")
    private Long userId;
    @ApiModelProperty("用户名称")
    private String userName;
    @ApiModelProperty("头像")
    private String userHeadPic;
    @ApiModelProperty("会员")
    private Boolean vipOrNot = false;

    @ApiModelProperty("活动分类")
    private Long categoryId;
    @ApiModelProperty("活动分类")
    private String categoryName;
    @ApiModelProperty("活动小图标")
    private String categoryIcon;

    /** 用户认证种类 */
    @ApiModelProperty("用户认证种类（ 1：个人 2：俱乐部）")
    private Integer authenticationType;

    @ApiModelProperty("是否是官方活动 展示含有特殊背景 coverPic字段")
    private Boolean officeUser;
    @ApiModelProperty("是否公开展示")
    private Boolean showPublic;

    /** 详细地址 */
    @ApiModelProperty("详细地址")
    private String address;

    @ApiModelProperty("详细地址名称")
    private String locationName;

    /** 经度 */
    @ApiModelProperty("经度")
    private Double longitude;

    /** 维度 */
    @ApiModelProperty("维度")
    private Double latitude;

    /** 活动标题 */
    @ApiModelProperty("活动标题")
    private String title;

    /** 封面图 */
    @ApiModelProperty("封面背景图")
    private String coverPic;

    /** 活动第一张图片 */
    @ApiModelProperty("活动第一张图片")
    private String picFirst;


    /** 图片列表（多个逗号隔开） */
    @Deprecated
    @ApiModelProperty("图片列表（多个逗号隔开）废弃")
    private String picList;

    /** 图片列表（多个逗号隔开） */
    @ApiModelProperty("图片列表（多个逗号隔开）")
    private String picListV2;

    /** 活动形式（1：不限 2：限女生 3：限男生 4：自定义） */
    @Excel(name = "活动形式", readConverterExp = "1=：不限,2=：限女生,3=：限男生 4：自定义")
    @ApiModelProperty("活动形式  1=：不限,2=：限女生,3=：限男生 4：自定义")
    private Integer formType;

    @ApiModelProperty("报名人数")
    private Integer maxSignUpCount;
    @ApiModelProperty("已报名人数")
    private Integer signUpCount;

    @ApiModelProperty("最多女生人数")
    private Integer maxWomanCount;

    @ApiModelProperty("最多男生人数")
    private Integer maxManCount;

    @ApiModelProperty("剩余女生人数")
    private Integer leaveWomanCount;

    @ApiModelProperty("剩余男生人数")
    private Integer leaveManCount;

    /** 开始时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("开始时间")
    private String startDate;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("开始时间 仅用于前端展示 示例 18:00-20:00 周三 06-23")
    private String dateShow;

//    @JsonFormat(pattern = "MM月dd日")
    @ApiModelProperty("MM月dd日")
    private String dateDayShow;

    /** 结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("结束时间")
    private String endDate;

    @ApiModelProperty("无责取消种类 1=：活动开始前,2=：活动2小时前,3=：活动4小时前,4=:,活=动一天前,5=:,不=可取取消")
    private Integer cancelFreeType;

    @ApiModelProperty("无责取消")
    private String cancelFreeTypeDesc;

    @ApiModelProperty("介绍文案")
    private String describeContent;
    @ApiModelProperty("介绍图片")
    private String describePic;


    @ApiModelProperty("收费类型 1=：AA收费,2=：免费")
    private Integer chargeType;

    @ApiModelProperty("收费类型 1=线上支付 2：线下收费")
    private Integer payWay;

    /** 价格（元/单人） */
    @ApiModelProperty("价格创建活动提交的  AA 没人多少钱")
    private BigDecimal price;

    /** 价格（元/单人） */
    @ApiModelProperty("价格展示 可能是免费")
    private String priceShow;

    @ApiModelProperty("提交订单前需要支付的价格 目前支持单人区分男女优惠")
    private BigDecimal payPrice;

    @ApiModelProperty("距离展示 包含单位 km/m")
    private String distanceShow;

    @ApiModelProperty("优惠类型 1=：女生优惠,.=.")
    private Integer discountType;

    @ApiModelProperty("优惠金额")
    private BigDecimal discountedPrice;

    @ApiModelProperty("优惠金额原始值")
    private BigDecimal discountedPriceOrigin;

    @ApiModelProperty("联系人")
    private String contactName;

    @ApiModelProperty("联系人微信")
    private String contactWechat;

    @ApiModelProperty("联系电话")
    private String contactPhone;

    @ApiModelProperty("活动状态 10=：报名中,20=：已截止,30=：进行中,40=：已结束,50=：已取消")
    private Integer status;

    @ApiModelProperty("用户报名状态 1：未报名 2：报名成功 3：已取消报名")
    private Integer signUpStatus = 1;

    @ApiModelProperty("创建者信息 仅仅在详情页使用 这里要注意只有报名后才能获取")
    private UserInfoVo createUser;

    @ApiModelProperty("报名人列表")
    private List<ActivityUserSignUpVo> userSignUpVoList;

    @ApiModelProperty("是否是自己创建的活动")
    private Boolean myActivity = false;

    @ApiModelProperty("结算时间")
    private String settleDate;

    @ApiModelProperty("活动关联的商家")
    private MerchantVO merchantVO;

    @ApiModelProperty("活动关联的商家产品")
    private MerchantProductVO merchantProductVO;

    @ApiModelProperty("小程序二维码")
    private String erCodeUrl;

}
